package com.battle.service.service.in;

import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.exam.*;
import com.battle.pojo.vo.exam.*;

import java.util.List;


/**
 * 【描 述】：考试管理服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface ExamService {

    /**
     * 创建考试管理
     *
     * @param param
     */
    void createExam(CreateExamParam param);

    /**
     * 修改考试管理
     *
     * @param param
     */
    void editExam(EditExamParam param);

    /**
     * 移除考试管理
     *
     * @param id
     */
    void removeExam(Long id);

    /**
     * 启动/禁用考试管理
     *
     * @param id
     */
    void enabledExam(Long id);

    /**
     * 获取考试管理详情
     *
     * @param id
     * @return
     */
    GetExamVo getExam(Long id);

    /**
     * 撤回考试
     * @param id
     */
    void recallExam(Long id);

    /**
     * 发布考试
     * @param id
     */
    void publishExam(Long id);

    /**
     * 获取指定题目列表
     * @param param
     * @return
     */
    PageResult<AppointQuestionJsonVo> getAppointQuestionList(GetExamListParam param);

    /**
     * 获取考试管理列表
     *
     * @param param
     * @return
     */
    PageResult<GetExamListVo> getExamList(GetExamListParam param);


    /**
     * 获取考试管理下拉列表
     *
     * @param param
     * @return
     */
    List<GetExamDownListVo> getExamDownList(GetExamDownListParam param);


}